const promise1 = new Promise((resolve, reject) => {
    setTimeout(() => {   // 宏1
        resolve('success');  // 改状态了
        console.log('timer1');
    }, 1000);
});

const promise2 = promise1.then(() => {   // 微1 [第一次的时候状态没变所以不能执行]
    throw new Error('error!!!');         //  [第二次状态改变执行]
});

console.log('promise1', promise1);
console.log('promise2', promise2);

setTimeout(() => {  // 宏2
    console.log('timer2');
    console.log('promise1', promise1);
    console.log('promise2', promise2);
}, 1000);

// promise1 Promise{<pending>} -> promise2 Promise{<pending>} -> timer1 -> Error: error!!!